CREATE VIEW VIEW_FIN_MOVIMENTO_CAIXA_BANCO(
    ID,
    ID_CONTA_CAIXA,
    NOME_CONTA_CAIXA,
    NOME_PESSOA,
	DATA_LANCAMENTO,
    DATA_PAGO_RECEBIDO,
    HISTORICO,
    VALOR,
    DESCRICAO_DOCUMENTO_ORIGEM,
    OPERACAO)
AS
select
  CAST( CONCAT(CC.ID,LP.ID,PP.ID) as UNSIGNED) as ID,
  CC.ID AS ID_CONTA_CAIXA, CC.NOME AS NOME_CONTA_CAIXA, P.NOME,
  LP.DATA_LANCAMENTO, PP.DATA_PAGAMENTO AS DATA_PAGO_RECEBIDO, 
  PP.HISTORICO, PP.VALOR_PAGO, DOC.DESCRICAO, 'S' AS OPERACAO
 
from 
  FIN_PARCELA_PAGAMENTO PP 
	inner join CONTA_CAIXA CC on (PP.ID_CONTA_CAIXA = CC.ID)
        inner join FIN_PARCELA_PAGAR PPR on (PP.ID_FIN_PARCELA_PAGAR = PPR.ID)
	inner join FIN_LANCAMENTO_PAGAR LP on (PPR.ID_FIN_LANCAMENTO_PAGAR = LP.ID)
	inner join FORNECEDOR F on (LP.ID_FORNECEDOR = F.ID) 
	inner join PESSOA P on (F.ID_PESSOA = P.ID)
	inner join FIN_DOCUMENTO_ORIGEM DOC on (LP.ID_FIN_DOCUMENTO_ORIGEM = DOC.ID)
 
 
union
 
select
  CAST( CONCAT(CC.ID,LR.ID,PR.ID) as UNSIGNED) as ID,
  CC.ID AS ID_CONTA_CAIXA, CC.NOME AS NOME_CONTA_CAIXA, P.NOME,
  LR.DATA_LANCAMENTO, PR.DATA_RECEBIMENTO AS DATA_PAGO_RECEBIDO, 
  PR.HISTORICO, PR.VALOR_RECEBIDO, DOC.DESCRICAO, 'E' AS OPERACAO
 
from 
  FIN_PARCELA_RECEBIMENTO PR
	inner join CONTA_CAIXA CC on (PR.ID_CONTA_CAIXA = CC.ID)
        inner join FIN_PARCELA_RECEBER PPR on (PR.ID_FIN_PARCELA_RECEBER = PPR.ID)
	inner join FIN_LANCAMENTO_RECEBER LR on (PPR.ID_FIN_LANCAMENTO_RECEBER = LR.ID)
	inner join CLIENTE C on (LR.ID_CLIENTE = C.ID) 
	inner join PESSOA P on (C.ID_PESSOA = P.ID)
	inner join FIN_DOCUMENTO_ORIGEM DOC on (LR.ID_FIN_DOCUMENTO_ORIGEM = DOC.ID)
 
ORDER BY 2, 5
;